package com.neouton.crm.screen.mapper;

import com.neouton.crm.screen.Hander.MapResultHandler;
import com.neouton.crm.screen.entity.ScreenVO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Mapper
public interface ScreenMapper {

    void queryAllByProjectId(MapResultHandler<String,BigDecimal> mapResultHandler,
                                                @Param("projectID") Integer projectID);

    void queryPurByProjectIdGroupSupper(MapResultHandler<String,BigDecimal> mapResultHandler,
                                        @Param("projectID") Integer projectID);

    void queryPurDataByProjectId(MapResultHandler<String,BigDecimal> mapResultHandler,
                                        @Param("projectID") Integer projectID);

    void queryPayData(MapResultHandler<String,BigDecimal> mapResultHandler,
                                 @Param("projectID") Integer projectID);

    void queryNoPayData(MapResultHandler<String,BigDecimal> mapResultHandler,
                      @Param("projectID") Integer projectID);

    void queryReceiptRecordData(MapResultHandler<String,BigDecimal> mapResultHandler,
                                @Param("projectID") Integer projectID);

    void queryReceiptRecordDataByUser(MapResultHandler<String,BigDecimal> mapResultHandler,
                                      @Param("projectID") Integer projectID);

    ScreenVO getContractInfo(Integer projectId);

    List<ScreenVO> getContractInfoByCustomer(Integer projectId);

    List<ScreenVO> getReimbursementInfo(Integer projectId);

    ScreenVO getRecordInfo(Integer projectId);

    Double getOverdueMoney(Integer projectId);
}
